1. Field of the Invention
The present invention relates to the field of event based or real-time programming and more particularly to feasibility analysis in schedulers for tasks in an event based program execution environment.
2. Description of the Related Art
Real-time computer programming refers to the study of computing systems subject to a real-time constraint—namely operational deadlines from event to system response. Similarly, event-driven programming refers to the study of computing systems in which the flow of operation of the computing system is determined by the occurrence of events within the computing system or the receipt of events by the computing system. In both real-time programming and event-driven programming (to the extent that one can be distinguished from another), the computing system must be able to handle a processing load in response to the occurrence of an event before an established deadline.
Scheduling is an important aspect of real-time and event-driven programming. Generally, a scheduler prioritizes tasks in a priority queue in response to the occurrence of events. In real-time environments, in particular, the scheduler also ensures that processes can meet deadlines. Meeting deadlines in a real-time or event-driven computing system, of course, is a crucial task in order to maintain the stability of the subject computing system.
Given the importance of assuring suitable processing resources to handle a series of anticipated events in a computing system, both real-time programmers and event-driven programmers statically analyze the ability of a subject computing system to handle expected event loads before fielding a real-time or event-driven system. Static analysis generally involves the analysis of a computer program without executing the computer program. By comparison, dynamic analysis refers to the analysis of the handling of event loads by a computer program during the execution of the computer program. In respect to the static analysis of a real-time or event-driven application, the cycle of development includes first a static analysis followed by modification and deployment of the application, followed by additional static analysis and so forth.
The foregoing tedious process can become particularly unworkable for large event-based applications. As such, a more dynamic and flexible way would be desirable in order to ensure that the application subject to analysis is both feasible and also will execute within defined constraints.